const md5 = require('md5')
const multer = require('multer')
const path = require('path')
// 2. 封装处理路径函数
const handlePath = (dir) => {
    return path.join(__dirname, './', dir)
}



// 3. 设置 multer 的配置对象
const storage = multer.diskStorage({
    // 3.1 存储路径
    destination: function (req, file, cb) {
        cb(null, "./public/upload/")
    },
    // 3.2 存储名称
    filename: function (req, file, cb) {
        // 将图片名称分割伪数组，用于截取图片的后缀
        const fileFormat = file.originalname.split('.')
        // 自定义图片名称
        cb(null, md5(new Date()) + '.' + fileFormat[fileFormat.length - 1])
    }
})

const fileFilter = (req, file, cb) => {

    // 1. 获取文件后缀
    const fileFormat = file.originalname.split('.')
    // 2. 判断文件后缀是否为图片
    const imgType = ['.jpg', '.jpeg', '.png', '.gif']
    // 3. 如果是图片，则执行上传，否则拒绝上传
    if (imgType.includes('.' + fileFormat[fileFormat.length - 1])) {
        cb(null, true)
    } else {
        cb(null, false)
    }
}

// 4. 为 multer 添加配置
const multerConfig = multer({
     // dest:"./public/upload"
    fileFilter: fileFilter,
    storage: storage,
    limits: { fileSize: 2097152 } // 2M
})

module.exports = multerConfig